package com.alibaba.shopping_common.result;

import lombok.AllArgsConstructor;
import lombok.Data;

import java.io.Serializable;

/**
 * @ClassName BaseResult
 * @Description TODO
 * @Author Leo
 * @Date 2024/12/5 15:06
 */
@Data
@AllArgsConstructor
public class BaseResult<T> implements Serializable {

    // 状态码
    private Integer code;
    // 提示消息
    private String message;
    // 返回数据
    private T data;

    // 构建成功的返回结果（不带返回数据）
    public static <T> BaseResult<T> OK(){
        return new BaseResult<>(CodeEnum.SUCCESS.getCode(), CodeEnum.SUCCESS.getMessage(), null);
    }

    // 构建成功的返回结果（带返回数据）
    public static <T> BaseResult<T> OK(T data){
        return new BaseResult<>(CodeEnum.SUCCESS.getCode(), CodeEnum.SUCCESS.getMessage(), data);
    }

    // 参数为空的返回结果
    public static <T> BaseResult<T> ERR_PARAMETER_IS_NULL(T data){
        return new BaseResult<>(CodeEnum.PARAMETER_IS_NULL.getCode(), CodeEnum.PARAMETER_IS_NULL.getMessage(), data);
    }

    // 参数为空的返回结果
    public static <T> BaseResult<T> ERR_SYS(T data){
        return new BaseResult<>(CodeEnum.SYSTEM_ERROR.getCode(), CodeEnum.SYSTEM_ERROR.getMessage(), data);
    }
}




